// 引入axios
import axios from 'axios'
import { ElMessage } from 'element-plus'
// 引入用户相关的仓库
import useUserStore from '@/store/modules/user'

// 创建一个axios实例
const requset = axios.create({
    // 基地址
    baseURL: '/api',
    // 超时时间
    timeout: 5000,
})

// 请求拦截器
requset.interceptors.request.use((config) => {
    // 获取用户仓库的实例
    let useStore = useUserStore();
    // 要是存在用户token就发送到请求头上面去
    if (useStore.userInfo.token){
        config.headers.token = useStore.userInfo.token
    }
    return config
})

// 响应拦截器
requset.interceptors.response.use((response) => {
    // ElMessage({
    //     type: 'success',
    //     message: '请求成功'
    // })
    // 可以简化返回的数据
    return response.data;
}, (error) => {
    // 处理网络错误
    let status = error.response.status
    if (status !== 200) {
        ElMessage({
            type: 'error',
            message: error.message
        })
    }
    return Promise.reject(new Error(error.message))
})

export default requset;